
// repnse_changeante 
function afficherReponses(id_bloc_gauche,id_liste_question_gauche, id_liste_reponses_gauche, id_bloc_droite, id_liste_question_droite, id_liste_reponses_droite, id_bloc_statut, id_liste_statut, 
								questions, articles, statuts,
								id_bouton_recap, id_recap
								) {
	var bloc_gauche = document.getElementById(id_bloc_gauche);
	var bloc_droite = document.getElementById(id_bloc_droite);
	var liste_question_gauche = document.getElementById(id_liste_question_gauche);
	var liste_reponses_gauche = document.getElementById(id_liste_reponses_gauche);
	var liste_reponses_droite = document.getElementById(id_liste_reponses_droite);
	var liste_question_droite = document.getElementById(id_liste_question_droite);
	var bloc_statut = document.getElementById(id_bloc_statut);
	var liste_statut = document.getElementById(id_liste_statut);
	var bouton_recap = document.getElementById(id_bouton_recap);
	var recapitulatif = document.getElementById(id_recap);
	
	ajouterFonctionsComplementaires(bloc_gauche);
	ajouterFonctionsComplementaires(bloc_droite);
	ajouterFonctionsComplementaires(liste_question_gauche);
	ajouterFonctionsComplementaires(liste_reponses_gauche);
	ajouterFonctionsComplementaires(liste_question_droite);
	ajouterFonctionsComplementaires(liste_reponses_droite);
	ajouterFonctionsComplementaires(recapitulatif);
	
	liste_question_gauche.clearChilds();
	liste_question_droite.clearChilds();
	liste_reponses_droite.clearChilds();
	liste_reponses_gauche.clearChilds();
	
	bloc_gauche.style.display = 'block';
	bloc_droite.style.display = 'block';
	bloc_statut.style.display = 'block';
	
	liste_question_gauche.appendChild(nouvelElement('option'));
	liste_question_droite.appendChild(nouvelElement('option'));
	
	// Remplissage des listes de questions (à gauche et droite)
	for(var k in questions) {
		var option_gauche = nouvelElement('option', {value:questions[k].info.id_question, text:questions[k].info.libelle_question});
		var option_droite = nouvelElement('option', {value:questions[k].info.id_question, text:questions[k].info.libelle_question});
		option_gauche.info_question = questions[k];
		option_droite.info_question = questions[k];
		liste_question_gauche.appendChild(option_gauche);
		liste_question_droite.appendChild(option_droite);
	}
	
	// Remplissage des combos pour les statuts
	for(var k in statuts) {
		var option_statut = nouvelElement('option', {value:statuts[k].StatutsReponse.id_statut_reponse, text:statuts[k].StatutsReponse.libelle_statut_reponse});
		liste_statut.appendChild(option_statut);
	}
	
	var liste_reponses_gauche_el = new Array();
	var liste_reponses_droite_el = new Array();
	
	function remplir_questions_reponses(bloc_questions, bloc_reponses, liste_reponse){
		bloc_reponses.clearChilds();
		var question_changee = bloc_questions.options[bloc_questions.selectedIndex].info_question;
		switch(question_changee.info.type_reponse) {
			case "ENTIER" : 
				var min = nouvelElement('input', {type:'number', name:'min'});
				var max = nouvelElement('input', {type:'number', name:'max'});
				liste_reponse['min'] = min;
				liste_reponse['max'] = max;
				
				bloc_reponses.appendChilds( [
					nouvelElement('span', {textnode:'Spécifier l\'intervalle sur lequel réagir :'}), nouvelElement('br'), 
					nouvelElement('span', {textnode: 'Minimum :'}), min, nouvelElement('br'), 
					nouvelElement('span', {textnode: 'Maximum :'}), max]);
				break;
			case "LISTE" : 
				if(question_changee.reponses == undefined) {	// pas de réponses
					alert("Cette liste est vide. Veuillez sélectionner une nouvelle question, ou remplir la liste.");
				}
				else {
				bloc_reponses.appendChilds([nouvelElement('span', {textnode:'Agir en fonction de la réponse :'}), nouvelElement('br')]);
				liste_reponse['liste'] = new Array();
				
				for(var k in question_changee.reponses) {
					var macheckbox = nouvelElement('input', {value:question_changee.reponses[k].id_reponse ,type:'checkbox', name:'liste'});
					macheckbox.libelle = question_changee.reponses[k].libelle_reponse_combo;
					liste_reponse['liste'].push(macheckbox);
					bloc_reponses.appendChilds( [ macheckbox, 
						nouvelElement('span', {textnode:' '+question_changee.reponses[k].libelle_reponse_combo}), nouvelElement('br') ]	);
				}
				}
				break;
			case "OUINON" :
				var oui = nouvelElement('input', {type:'radio', name:'ouinon'+question_changee.info.id_question});
				var non = nouvelElement('input', {type:'radio', name:'ouinon'+question_changee.info.id_question});
				liste_reponse['oui'] = oui;
				liste_reponse['non'] = non;
				bloc_reponses.appendChilds([nouvelElement('span', {textnode:'Agir en fonction de la réponse :'}), nouvelElement('br'), 
													nouvelElement('span', {textnode:'oui'}), oui, 
													nouvelElement('span', {textnode:'non'}), non]);
				break;
			case "ARTICLE" :
				var categorie_articles = question_changee.info.id_categorie;
				liste_reponse['article'] = new Array();
				for(var k in articles[categorie_articles].articles) {
					var checkart = nouvelElement('input', {value:articles[categorie_articles].articles[k].id_article ,type:'checkbox', name:'liste'});
					checkart.libelle = articles[categorie_articles].articles[k].description_article;
					checkart.id_article = articles[categorie_articles].articles[k].id_article;
					liste_reponse['article'].push(checkart);
					bloc_reponses.appendChilds([checkart, nouvelElement('span', {textnode:' '+articles[categorie_articles].articles[k].description_article}), nouvelElement('br')]);
				}
				break;
			case "TEXTE" : break;
			default: break;
		}
	}
	
	liste_question_gauche.onchange = function(){remplir_questions_reponses(liste_question_gauche, liste_reponses_gauche, liste_reponses_gauche_el);}
	liste_question_droite.onchange = function(){remplir_questions_reponses(liste_question_droite, liste_reponses_droite, liste_reponses_droite_el);}
	
	// ajout de l'action sur le clic du bouton
	bouton_recap.onclick = function () {
		
		var lib_question_gauche = liste_question_gauche.options[liste_question_gauche.selectedIndex].text;
		var lib_question_droite = liste_question_droite.options[liste_question_droite.selectedIndex].text;
		
		if(lib_question_gauche == lib_question_droite) {
			alert("Vous ne pouvez pas enregistrer une règle portant 2 fois sur la même question.");
			$(liste_question_droite).find("option:first").attr("selected", "selected");
			$(liste_reponses_droite).empty();
		}
		else {
			var lib_reponse_gauche;
			var lib_reponse_droite;
			var lib_statut = liste_statut.options[liste_statut.selectedIndex].text;

			function recuperer_libelle_reponse (question, liste_reponse) {
				var libelle = '';
				switch(question.info.type_reponse) {
					case 'LISTE':
						var premier = true;
						for (var k in liste_reponse['liste']) {
							if(liste_reponse['liste'][k].checked) {
								if(premier) premier = false; else libelle += ', ';
								libelle += liste_reponse['liste'][k].libelle;
							}
						}
						break;
					case 'ENTIER':
						libelle = 'de '+liste_reponse['min'].value+' à '+liste_reponse['max'].value+' ';
						break;
					case 'OUINON':
						if(liste_reponse['oui'].checked) libelle = 'oui';
						else if(liste_reponse['non'].checked) libelle = 'non';
						break;
					case 'ARTICLE':
						var premier = true;
						for (var k in liste_reponse['article']) {
							if(premier) premier = false; else libelle += ', ';
							if(liste_reponse['article'][k].checked) libelle += liste_reponse['article'][k].libelle;
						}
						break;
				}

				return libelle;
			}

			lib_reponse_gauche = recuperer_libelle_reponse(liste_question_gauche.options[liste_question_gauche.selectedIndex].info_question, liste_reponses_gauche_el);
			lib_reponse_droite = recuperer_libelle_reponse(liste_question_droite.options[liste_question_droite.selectedIndex].info_question, liste_reponses_droite_el);

			
			//ajouterLigneTabRecapConseils(liste_question_gauche.options[liste_question_gauche.selectedIndex].info_question.libelle_question
			//						, lib_reponse_gauche,
			//						liste_question_droite.options[liste_question_droite.selectedIndex].info_question.libelle_question
			//						, lib_reponse_droite, lib_statut);
			

			// on ajoute la question 1
			var recapitulatif_text = "Si l'utilisateur répond '"+lib_reponse_gauche+"' à la question '"+lib_question_gauche+
								"', alors la réponse '"+lib_reponse_droite+"' de la question '"+lib_question_droite+"' prend le statut '"+lib_statut+"'.";
			recapitulatif.clearChilds();
			
			
			// création et ajout du bouton
			var bouton_confirmer = nouvelElement('input', {type:'button', value:"Confirmer"});
			bouton_confirmer.onclick = function(){
				
				
				
				var liste_id_reponse_gauche = new Array();
				var liste_id_reponse_droite = new Array();
				var id_statut = liste_statut.options[liste_statut.selectedIndex].value;

				//var txt_reponse_gauche;
				function recuperer_id_reponse(liste_id, liste_question, liste_reponses_el) {
					switch(liste_question.options[liste_question.selectedIndex].info_question.info.type_reponse) {
						case 'LISTE':
							for (var k in liste_reponses_el['liste']) {
								if(liste_reponses_el['liste'][k].checked) {
									var reponse = sendQueryJSON('ajouterReponse', 
																'question='+ encodeURIComponent(liste_question.options[liste_question.selectedIndex].info_question.info.id_question) +
																'&type=liste&libelle=' + encodeURIComponent(liste_reponses_el['liste'][k].libelle),
																'POST');
									liste_id.push(reponse.id_reponse);
								}
							}
							break;
						case 'ARTICLE':
							for (var k in liste_reponses_el['article']) {
								if(liste_reponses_el['article'][k].checked) {
									var reponse = sendQueryJSON('ajouterReponse', 
																'question='+ encodeURIComponent(liste_question.options[liste_question.selectedIndex].info_question.info.id_question) +
																'&type=article&article=' + encodeURIComponent(liste_reponses_el['article'][k].id_article),
																'POST');
									liste_id.push(reponse.id_reponse);
								}
							}
							break;
						case 'ENTIER':
							var reponse = sendQueryJSON('ajouterReponse', 
														'question='+ encodeURIComponent(liste_question.options[liste_question.selectedIndex].info_question.info.id_question) +
														'&type=entier&min='+liste_reponses_el['min'].value+'&max='+liste_reponses_el['max'].value,
														'POST');
							liste_id.push(reponse.id_reponse);
							//txt_reponse_gauche = "entre "+liste_reponses_el['min'].value+" et "+liste_reponses_el['max'].value;
							break;
						case 'OUINON':
							var mareponse = liste_reponses_el['oui'].checked ? "oui" : "non";
							var reponse = sendQueryJSON('ajouterReponse', 
														'question='+ encodeURIComponent(liste_question.options[liste_question.selectedIndex].info_question.info.id_question) +
														'&type=ouinon&reponse='+encodeURIComponent(mareponse),
														'POST');
							liste_id.push(reponse.id_reponse);
							break;
					}
				}

				recuperer_id_reponse(liste_id_reponse_gauche, liste_question_gauche, liste_reponses_gauche_el);
				recuperer_id_reponse(liste_id_reponse_droite, liste_question_droite, liste_reponses_droite_el);

				// on parcours les id des reponses de gauches, et on ajoute une regle pour chacunes des id des réponses de droites
				for (k1 in liste_id_reponse_gauche) {
					for (k2 in liste_id_reponse_droite) {
						var resultat = sendQueryJSON('ajouterRegleReponse', 'id_reponse_affectant='+liste_id_reponse_gauche[k1]+'&id_reponse_affectee='+liste_id_reponse_droite[k2]+'&id_statut='+id_statut);
						if(resultat.success) {
							alert('La règle a bien été ajoutée.');
							//$("#zeroreglesconseils").remove();
							//ajouterLigneTabRecapConseils(lib_question_gauche, txt_reponse_gauche, lib_question_droite, liste_id_reponse_droite[k2], lib_statut);
			
						}
						else {
							alert('Erreur : ' + resultat.result);
						}
					}
				}
			}

			recapitulatif.appendChilds([document.createTextNode(recapitulatif_text), bouton_confirmer]);
		}
	}
}

function ajouterLigneTabRecapConseils(q_influencant_txt, r_influencant_txt, q_influencee_txt, r_influencee_txt, statut_txt) {
	
	$("#tableau_conseils > tbody").append(
								"<tr>"+
									"<td>"+q_influencant_txt+"</td>"+
									"<td>"+r_influencant_txt+"</td>"+
									"<td>"+q_influencee_txt+"</td>"+
									"<td>"+r_influencee_txt+"</td>"+
									"<td>"+statut_txt+"</td>"+
									"<td>"+6+"</td>"+									
								"</tr>"
							);
}
